We install the environment and

  install.packages(c("devtools","tidyverse","sf","geojsonio", "spData", "data.table"))
Retrieving 'https://cloud.r-project.org/src/contrib/data.table_1.13.6.tar.gz' ...
    OK [downloaded 5.1 Mb in 0.9 secs]
Installing devtools [2.3.2] ...
    OK [linked cache]
Installing tidyverse [1.3.0] ...
    OK [linked cache]
Installing sf [0.9-7] ...
    OK [linked cache]
Installing geojsonio [0.9.4] ...
    OK [linked cache]
Installing spData [0.3.8] ...
    OK [linked cache]
Installing data.table [1.13.6] ...
    OK [built from source]
Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     
  install.packages(c("devtools","tidyverse","sf","geojsonio", "spData", "data.table"))
Installing devtools [2.3.2] ...
    OK [linked cache]
Installing tidyverse [1.3.0] ...
    OK [linked cache]
Installing sf [0.9-7] ...
    OK [linked cache]
Installing geojsonio [0.9.4] ...
    OK [linked cache]
Installing spData [0.3.8] ...
    OK [linked cache]
Installing data.table [1.13.6] ...
    OK [linked cache]
  renv::snapshot(prompt = FALSE)
The following package(s) will be updated in the lockfile:

# CRAN ===============================
- data.table   [* -> 1.13.6]

* Lockfile written to '~/Projects/Dropbox/r-maps/renv.lock'.

Cartovl Map for R example


nc_geojson <- system.file("shape/nc.shp", package = "sf") %>%
  st_read() %>%
  geojson_json()

viz_def <- list(
  "color: ramp($AREA, [midnightblue, gold])"
)

map <- cartovl() %>%
  set_view(-79.89042, 35.23582, 6) %>%
  add_layer(nc_geojson, viz_def)

if (interactive()) map

getting started


sample_data <- geojson_json(quakes)
Assuming 'long' and 'lat' are longitude and latitude, respectively
'geojsonlint' not installed, skipping GeoJSON linting
viz_def <- list(
  "color: green",
  "width: 5",
  "filter: $mag > 5.2",
  "@popup: $mag"
)

map <- cartovl() %>%
  set_view(176.9, -24.655, 2) %>%
  add_layer(sample_data, viz_def, popup = TRUE) %>%
  add_box("<h1>quakes</h1>")

if (interactive()) map

carto-dataset

viz_def <- list(
  "width: 7",
  "color: ramp($weather,[darkorange,darkviolet,darkturquoise])",
  "strokeWidth: 0.2",
  "strokeColor: black"
)

map <- cartovl() %>%
  set_view(-96, 41, 4) %>%
  add_box("<b>Rail Accidents by Weather</b>") %>%
  set_default_auth() %>%
  add_dataset_layer("railroad_accidents", viz_def, legend = list(position = "bottom-left"))

if (interactive()) map

every-person-in-manhatten



data_url <- paste0(
  "https://raw.githubusercontent.com/",
  "uber-common/deck.gl-data/",
  "master/examples/scatterplot/manhattan.json"
)

persons <- data_url %>%
  jsonlite::read_json(simplifyVector = TRUE) %>%
  as_tibble() %>%
  set_names(c("lng", "lat", "sex")) %>%
  dplyr::mutate(sex = ifelse(sex == 1, "male", "female"))
The `x` argument of `as_tibble.matrix()` must have unique column names if `.name_repair` is omitted as of tibble 2.0.0.
Using compatibility `.name_repair`.
This warning is displayed once every 8 hours.
Call `lifecycle::last_warnings()` to see where this warning was generated.
# persons$sex <- ifelse(persons$sex == 1, "m", "f")

# persons_geojson <- geojsonio::geojson_json(persons)

cartovl() %>%
  set_view(-73.985130, 40.758896, 11) %>%
  add_control() %>%
  add_layer(
    # data = persons_geojson,
    data = persons,
    viz_def = list("color: ramp(buckets($sex, ['male', 'female']), [red, blue])"),
    legend = TRUE
  )

external-data-source


source <- "https://libs.cartocdn.com/carto-vl/assets/stations.geojson"

map <- cartovl() %>%
  set_view(-77.04, 38.89, 9) %>%
  add_external_geojson_layer(source, list("@popup: $name"), popup = TRUE)

if (interactive()) map

layers_polygon

nc_geojson <- system.file("shape/nc.shp", package = "sf") %>%
  st_read() %>%
  geojson_json()
Reading layer `nc' from data source `/home/jordi/.local/share/renv/cache/v5/R-4.0/x86_64-pc-linux-gnu/sf/0.9-7/9d6831c4c002137d99be6b946ac9da07/sf/shape/nc.shp' using driver `ESRI Shapefile'
Simple feature collection with 100 features and 14 fields
geometry type:  MULTIPOLYGON
dimension:      XY
bbox:           xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
CRS:            4267
'geojsonlint' not installed, skipping GeoJSON linting
viz_def <- list(
  "color: ramp($AREA, [midnightblue, gold])",
  "filter: $AREA > 0.16",
  "@name: $NAME"
)

viz_def2 <- list(
  "color: ramp(globalQuantiles($AREA, 3), [midnightblue, gold])",
  "@name: $NAME"
)

map <- cartovl() %>%
  add_source(nc_geojson, "nc") %>%
  add_control("NavigationControl", showCompass = FALSE) %>%
  set_view(-79.89042, 35.23582, 6) %>%
  add_layer("nc", viz_def2, popup = TRUE, legend = TRUE)
  # add_layer(nc_geojson, viz_def, popup = TRUE)

if (interactive()) map

mapbox-layer_polygo


polygon_style <- list(
  type = "fill",
  paint = list(
    "fill-color" = "white",
    "fill-outline-color" = "red"
  ),
  filter = list(">", "AREA", 0.2)
)

cartovl() %>%
  set_view(-79.89042, 35.23582, 6) %>%
  add_source(nc_geojson, "nc") %>%
  add_mapbox_layer("nc", polygon_style)

mapbox-layer_text



data_geojson <- geojsonio::geojson_json(quakes)
Assuming 'long' and 'lat' are longitude and latitude, respectively
'geojsonlint' not installed, skipping GeoJSON linting
text_style <- list(
  type = "symbol",
  layout = list(
    "text-field" = "{mag}"
  ),
  paint = list(
    "text-color" = "white"
  )
)

map <- cartovl() %>%
  set_view(176.9, -24.655, 2) %>%
  # add_source(data_geojson, "quakes") %>%
  add_source(quakes, "quakes", latitude = "lat", longitude = "long") %>%
  # add_mapbox_layer("quakes", text_style) %>%
  add_mapbox_layer("quakes", mapbox_text_style("mag")) %>%
  add_control()

if (interactive()) map

multiple-layers


text_style <- list(
  type = "symbol",
  layout = list(
    "text-field" = "{NAME}"
  ),
  paint = list(
    "text-color" = "white"
  )
)

data_url <- "https://raw.githubusercontent.com/uber-common/deck.gl-data/master/examples/highway/roads.json"

us_states <- geojsonio::geojson_json(spData::us_states)

map <- cartovl() %>%
  add_control() %>%
  add_source(us_states, "us_states") %>%
  set_view(-100, 38, 3) %>%
  add_layer(
    "us_states",
    list(
      "color: opacity(ramp($NAME, vivid), 0.4)"
    ),
    id = "state-polygons"
  ) %>%
  add_external_geojson_layer(
    data_url,
    list(
      "color: ramp($state, vivid)",
      "width: 5",
      "@popup: $state"
    ),
    id = "roads",
    popup = TRUE
  ) %>%
  add_mapbox_layer(
    "us_states", text_style, id = "labels"
  )

if (interactive()) map

road-safety-uk


data_url <- paste0(
  "https://raw.githubusercontent.com/",
  "uber-common/deck.gl-data/",
  "master/examples/3d-heatmap/heatmap-data.csv"
)
sample_data <- data.table::fread(data_url) %>%
  na.omit()

 [0%] Downloaded 1371 bytes...
 [0%] Downloaded 2742 bytes...
 [0%] Downloaded 4113 bytes...
 [0%] Downloaded 5484 bytes...
 [0%] Downloaded 6855 bytes...
 [0%] Downloaded 8226 bytes...
 [0%] Downloaded 9597 bytes...
 [0%] Downloaded 10968 bytes...
 [1%] Downloaded 12339 bytes...
 [1%] Downloaded 13710 bytes...
 [1%] Downloaded 15081 bytes...
 [1%] Downloaded 16452 bytes...
 [1%] Downloaded 17823 bytes...
 [1%] Downloaded 19194 bytes...
 [1%] Downloaded 20565 bytes...
 [1%] Downloaded 21936 bytes...
 [2%] Downloaded 23307 bytes...
 [2%] Downloaded 24678 bytes...
 [2%] Downloaded 26049 bytes...
 [2%] Downloaded 27420 bytes...
 [2%] Downloaded 28791 bytes...
 [2%] Downloaded 30162 bytes...
 [2%] Downloaded 31533 bytes...
 [2%] Downloaded 32904 bytes...
 [2%] Downloaded 34275 bytes...
 [3%] Downloaded 35646 bytes...
 [3%] Downloaded 37017 bytes...
 [3%] Downloaded 38388 bytes...
 [3%] Downloaded 39759 bytes...
 [3%] Downloaded 41130 bytes...
 [3%] Downloaded 42501 bytes...
 [3%] Downloaded 43872 bytes...
 [3%] Downloaded 45243 bytes...
 [4%] Downloaded 46614 bytes...
 [4%] Downloaded 47985 bytes...
 [4%] Downloaded 49356 bytes...
 [4%] Downloaded 50727 bytes...
 [4%] Downloaded 52098 bytes...
 [4%] Downloaded 53469 bytes...
 [4%] Downloaded 54840 bytes...
 [4%] Downloaded 56211 bytes...
 [4%] Downloaded 57582 bytes...
 [5%] Downloaded 58953 bytes...
 [5%] Downloaded 60324 bytes...
 [5%] Downloaded 61695 bytes...
 [5%] Downloaded 63066 bytes...
 [5%] Downloaded 64437 bytes...
 [5%] Downloaded 65808 bytes...
 [5%] Downloaded 67179 bytes...
 [5%] Downloaded 68550 bytes...
 [6%] Downloaded 69921 bytes...
 [6%] Downloaded 71292 bytes...
 [6%] Downloaded 72663 bytes...
 [6%] Downloaded 74034 bytes...
 [6%] Downloaded 75405 bytes...
 [6%] Downloaded 76776 bytes...
 [6%] Downloaded 78147 bytes...
 [6%] Downloaded 79518 bytes...
 [7%] Downloaded 80889 bytes...
 [7%] Downloaded 82260 bytes...
 [7%] Downloaded 83631 bytes...
 [7%] Downloaded 85002 bytes...
 [7%] Downloaded 86373 bytes...
 [7%] Downloaded 87744 bytes...
 [7%] Downloaded 89115 bytes...
 [7%] Downloaded 90486 bytes...
 [7%] Downloaded 91857 bytes...
 [8%] Downloaded 93228 bytes...
 [8%] Downloaded 94599 bytes...
 [8%] Downloaded 95970 bytes...
 [8%] Downloaded 97341 bytes...
 [8%] Downloaded 98712 bytes...
 [8%] Downloaded 100083 bytes...
 [8%] Downloaded 101454 bytes...
 [8%] Downloaded 102825 bytes...
 [9%] Downloaded 104196 bytes...
 [9%] Downloaded 105567 bytes...
 [9%] Downloaded 106938 bytes...
 [9%] Downloaded 108309 bytes...
 [9%] Downloaded 109680 bytes...
 [9%] Downloaded 111051 bytes...
 [9%] Downloaded 112422 bytes...
 [9%] Downloaded 113793 bytes...
 [9%] Downloaded 115164 bytes...
 [10%] Downloaded 116535 bytes...
 [10%] Downloaded 117906 bytes...
 [10%] Downloaded 119277 bytes...
 [10%] Downloaded 120648 bytes...
 [10%] Downloaded 122019 bytes...
 [10%] Downloaded 123390 bytes...
 [10%] Downloaded 124761 bytes...
 [10%] Downloaded 126132 bytes...
 [11%] Downloaded 127503 bytes...
 [11%] Downloaded 128874 bytes...
 [11%] Downloaded 130245 bytes...
 [11%] Downloaded 131616 bytes...
 [11%] Downloaded 132987 bytes...
 [11%] Downloaded 134358 bytes...
 [11%] Downloaded 135729 bytes...
 [11%] Downloaded 137100 bytes...
 [12%] Downloaded 138471 bytes...
 [12%] Downloaded 139842 bytes...
 [12%] Downloaded 141213 bytes...
 [12%] Downloaded 142584 bytes...
 [12%] Downloaded 143955 bytes...
 [12%] Downloaded 145326 bytes...
 [12%] Downloaded 146697 bytes...
 [12%] Downloaded 148068 bytes...
 [12%] Downloaded 149439 bytes...
 [13%] Downloaded 150810 bytes...
 [13%] Downloaded 152181 bytes...
 [13%] Downloaded 153552 bytes...
 [13%] Downloaded 154923 bytes...
 [13%] Downloaded 156294 bytes...
 [13%] Downloaded 157665 bytes...
 [13%] Downloaded 159036 bytes...
 [13%] Downloaded 160407 bytes...
 [14%] Downloaded 161778 bytes...
 [14%] Downloaded 163149 bytes...
 [14%] Downloaded 164520 bytes...
 [14%] Downloaded 165891 bytes...
 [14%] Downloaded 167262 bytes...
 [14%] Downloaded 168633 bytes...
 [14%] Downloaded 170004 bytes...
 [14%] Downloaded 171375 bytes...
 [14%] Downloaded 172746 bytes...
 [15%] Downloaded 174117 bytes...
 [15%] Downloaded 175488 bytes...
 [15%] Downloaded 176859 bytes...
 [15%] Downloaded 178230 bytes...
 [15%] Downloaded 179601 bytes...
 [15%] Downloaded 180972 bytes...
 [15%] Downloaded 182343 bytes...
 [15%] Downloaded 183714 bytes...
 [16%] Downloaded 185085 bytes...
 [16%] Downloaded 186456 bytes...
 [16%] Downloaded 187827 bytes...
 [16%] Downloaded 189198 bytes...
 [16%] Downloaded 190569 bytes...
 [16%] Downloaded 191940 bytes...
 [16%] Downloaded 193311 bytes...
 [16%] Downloaded 194682 bytes...
 [17%] Downloaded 196053 bytes...
 [17%] Downloaded 197424 bytes...
 [17%] Downloaded 198795 bytes...
 [17%] Downloaded 200166 bytes...
 [17%] Downloaded 201537 bytes...
 [17%] Downloaded 202908 bytes...
 [17%] Downloaded 204279 bytes...
 [17%] Downloaded 205650 bytes...
 [17%] Downloaded 207021 bytes...
 [18%] Downloaded 208392 bytes...
 [18%] Downloaded 209763 bytes...
 [18%] Downloaded 211134 bytes...
 [18%] Downloaded 212505 bytes...
 [18%] Downloaded 213876 bytes...
 [18%] Downloaded 215247 bytes...
 [18%] Downloaded 216618 bytes...
 [18%] Downloaded 217989 bytes...
 [19%] Downloaded 219360 bytes...
 [19%] Downloaded 220731 bytes...
 [19%] Downloaded 222102 bytes...
 [19%] Downloaded 223473 bytes...
 [19%] Downloaded 224844 bytes...
 [19%] Downloaded 226215 bytes...
 [19%] Downloaded 227586 bytes...
 [19%] Downloaded 228957 bytes...
 [19%] Downloaded 230328 bytes...
 [20%] Downloaded 231699 bytes...
 [20%] Downloaded 233070 bytes...
 [20%] Downloaded 234441 bytes...
 [20%] Downloaded 235812 bytes...
 [20%] Downloaded 237183 bytes...
 [20%] Downloaded 238554 bytes...
 [20%] Downloaded 239925 bytes...
 [20%] Downloaded 241296 bytes...
 [21%] Downloaded 242667 bytes...
 [21%] Downloaded 244038 bytes...
 [21%] Downloaded 245409 bytes...
 [21%] Downloaded 246780 bytes...
 [21%] Downloaded 248151 bytes...
 [21%] Downloaded 249522 bytes...
 [21%] Downloaded 250893 bytes...
 [21%] Downloaded 252264 bytes...
 [22%] Downloaded 253635 bytes...
 [22%] Downloaded 255006 bytes...
 [22%] Downloaded 256377 bytes...
 [22%] Downloaded 257748 bytes...
 [22%] Downloaded 259119 bytes...
 [22%] Downloaded 260490 bytes...
 [22%] Downloaded 261861 bytes...
 [22%] Downloaded 263232 bytes...
 [22%] Downloaded 264603 bytes...
 [23%] Downloaded 265974 bytes...
 [23%] Downloaded 267345 bytes...
 [23%] Downloaded 268716 bytes...
 [23%] Downloaded 270087 bytes...
 [23%] Downloaded 271458 bytes...
 [23%] Downloaded 272829 bytes...
 [23%] Downloaded 274200 bytes...
 [23%] Downloaded 275571 bytes...
 [24%] Downloaded 276942 bytes...
 [24%] Downloaded 278313 bytes...
 [24%] Downloaded 279684 bytes...
 [24%] Downloaded 281055 bytes...
 [24%] Downloaded 282426 bytes...
 [24%] Downloaded 283797 bytes...
 [24%] Downloaded 285168 bytes...
 [24%] Downloaded 286539 bytes...
 [24%] Downloaded 287910 bytes...
 [25%] Downloaded 289281 bytes...
 [25%] Downloaded 290652 bytes...
 [25%] Downloaded 292023 bytes...
 [25%] Downloaded 293394 bytes...
 [25%] Downloaded 294765 bytes...
 [25%] Downloaded 296136 bytes...
 [25%] Downloaded 297507 bytes...
 [25%] Downloaded 298878 bytes...
 [26%] Downloaded 300249 bytes...
 [26%] Downloaded 301620 bytes...
 [26%] Downloaded 302991 bytes...
 [26%] Downloaded 304362 bytes...
 [26%] Downloaded 305733 bytes...
 [26%] Downloaded 307104 bytes...
 [26%] Downloaded 308475 bytes...
 [26%] Downloaded 309846 bytes...
 [26%] Downloaded 311217 bytes...
 [27%] Downloaded 312588 bytes...
 [27%] Downloaded 313959 bytes...
 [27%] Downloaded 315330 bytes...
 [27%] Downloaded 316701 bytes...
 [27%] Downloaded 318072 bytes...
 [27%] Downloaded 319443 bytes...
 [27%] Downloaded 320814 bytes...
 [27%] Downloaded 322185 bytes...
 [28%] Downloaded 323556 bytes...
 [28%] Downloaded 324927 bytes...
 [28%] Downloaded 326298 bytes...
 [28%] Downloaded 327669 bytes...
 [28%] Downloaded 329040 bytes...
 [28%] Downloaded 330411 bytes...
 [28%] Downloaded 331782 bytes...
 [28%] Downloaded 333153 bytes...
 [29%] Downloaded 334524 bytes...
 [29%] Downloaded 335895 bytes...
 [29%] Downloaded 337266 bytes...
 [29%] Downloaded 338637 bytes...
 [29%] Downloaded 340008 bytes...
 [29%] Downloaded 341379 bytes...
 [29%] Downloaded 342750 bytes...
 [29%] Downloaded 344121 bytes...
 [29%] Downloaded 345492 bytes...
 [30%] Downloaded 346863 bytes...
 [30%] Downloaded 348234 bytes...
 [30%] Downloaded 349605 bytes...
 [30%] Downloaded 350976 bytes...
 [30%] Downloaded 352347 bytes...
 [30%] Downloaded 353718 bytes...
 [30%] Downloaded 355089 bytes...
 [30%] Downloaded 356460 bytes...
 [31%] Downloaded 357831 bytes...
 [31%] Downloaded 359202 bytes...
 [31%] Downloaded 360573 bytes...
 [31%] Downloaded 361944 bytes...
 [31%] Downloaded 363315 bytes...
 [31%] Downloaded 364686 bytes...
 [31%] Downloaded 366057 bytes...
 [31%] Downloaded 367428 bytes...
 [31%] Downloaded 368799 bytes...
 [32%] Downloaded 370170 bytes...
 [32%] Downloaded 371541 bytes...
 [32%] Downloaded 372912 bytes...
 [32%] Downloaded 374283 bytes...
 [32%] Downloaded 375654 bytes...
 [32%] Downloaded 377025 bytes...
 [32%] Downloaded 378396 bytes...
 [32%] Downloaded 379767 bytes...
 [33%] Downloaded 381138 bytes...
 [33%] Downloaded 382509 bytes...
 [33%] Downloaded 383880 bytes...
 [33%] Downloaded 385251 bytes...
 [33%] Downloaded 386622 bytes...
 [33%] Downloaded 387993 bytes...
 [33%] Downloaded 389364 bytes...
 [33%] Downloaded 390735 bytes...
 [34%] Downloaded 392106 bytes...
 [34%] Downloaded 393477 bytes...
 [34%] Downloaded 394848 bytes...
 [34%] Downloaded 396219 bytes...
 [34%] Downloaded 397590 bytes...
 [34%] Downloaded 398961 bytes...
 [34%] Downloaded 400332 bytes...
 [34%] Downloaded 401703 bytes...
 [34%] Downloaded 403074 bytes...
 [35%] Downloaded 404445 bytes...
 [35%] Downloaded 405816 bytes...
 [35%] Downloaded 407187 bytes...
 [35%] Downloaded 408558 bytes...
 [35%] Downloaded 409929 bytes...
 [35%] Downloaded 411300 bytes...
 [35%] Downloaded 412671 bytes...
 [35%] Downloaded 414042 bytes...
 [36%] Downloaded 415413 bytes...
 [36%] Downloaded 416784 bytes...
 [36%] Downloaded 418155 bytes...
 [36%] Downloaded 419526 bytes...
 [36%] Downloaded 420897 bytes...
 [36%] Downloaded 422268 bytes...
 [36%] Downloaded 423639 bytes...
 [36%] Downloaded 425010 bytes...
 [36%] Downloaded 426381 bytes...
 [37%] Downloaded 427752 bytes...
 [37%] Downloaded 429123 bytes...
 [37%] Downloaded 430494 bytes...
 [37%] Downloaded 431865 bytes...
 [37%] Downloaded 433236 bytes...
 [37%] Downloaded 434607 bytes...
 [37%] Downloaded 435978 bytes...
 [37%] Downloaded 437349 bytes...
 [38%] Downloaded 438720 bytes...
 [38%] Downloaded 440091 bytes...
 [38%] Downloaded 441462 bytes...
 [38%] Downloaded 442833 bytes...
 [38%] Downloaded 444204 bytes...
 [38%] Downloaded 445575 bytes...
 [38%] Downloaded 446946 bytes...
 [38%] Downloaded 448317 bytes...
 [39%] Downloaded 449688 bytes...
 [39%] Downloaded 451059 bytes...
 [39%] Downloaded 452430 bytes...
 [39%] Downloaded 453801 bytes...
 [39%] Downloaded 455172 bytes...
 [39%] Downloaded 456543 bytes...
 [39%] Downloaded 457914 bytes...
 [39%] Downloaded 459285 bytes...
 [39%] Downloaded 460656 bytes...
 [40%] Downloaded 462027 bytes...
 [40%] Downloaded 463398 bytes...
 [40%] Downloaded 464769 bytes...
 [40%] Downloaded 466140 bytes...
 [40%] Downloaded 467511 bytes...
 [40%] Downloaded 468882 bytes...
 [40%] Downloaded 470253 bytes...
 [40%] Downloaded 471624 bytes...
 [41%] Downloaded 472995 bytes...
 [41%] Downloaded 474366 bytes...
 [41%] Downloaded 475737 bytes...
 [41%] Downloaded 477108 bytes...
 [41%] Downloaded 478479 bytes...
 [41%] Downloaded 479850 bytes...
 [41%] Downloaded 481221 bytes...
 [41%] Downloaded 482592 bytes...
 [41%] Downloaded 483963 bytes...
 [42%] Downloaded 485334 bytes...
 [42%] Downloaded 486705 bytes...
 [42%] Downloaded 488076 bytes...
 [42%] Downloaded 489447 bytes...
 [42%] Downloaded 490818 bytes...
 [42%] Downloaded 492189 bytes...
 [42%] Downloaded 493560 bytes...
 [42%] Downloaded 494931 bytes...
 [43%] Downloaded 496302 bytes...
 [43%] Downloaded 497673 bytes...
 [43%] Downloaded 499044 bytes...
 [43%] Downloaded 500415 bytes...
 [43%] Downloaded 501786 bytes...
 [43%] Downloaded 503157 bytes...
 [43%] Downloaded 504528 bytes...
 [43%] Downloaded 505899 bytes...
 [44%] Downloaded 507270 bytes...
 [44%] Downloaded 508641 bytes...
 [44%] Downloaded 510012 bytes...
 [44%] Downloaded 511383 bytes...
 [44%] Downloaded 512754 bytes...
 [44%] Downloaded 514125 bytes...
 [44%] Downloaded 515496 bytes...
 [44%] Downloaded 516867 bytes...
 [44%] Downloaded 518238 bytes...
 [45%] Downloaded 519609 bytes...
 [45%] Downloaded 520980 bytes...
 [45%] Downloaded 522351 bytes...
 [45%] Downloaded 523722 bytes...
 [45%] Downloaded 525093 bytes...
 [45%] Downloaded 526464 bytes...
 [45%] Downloaded 527835 bytes...
 [45%] Downloaded 529206 bytes...
 [46%] Downloaded 530577 bytes...
 [46%] Downloaded 531948 bytes...
 [46%] Downloaded 533319 bytes...
 [46%] Downloaded 534690 bytes...
 [46%] Downloaded 536061 bytes...
 [46%] Downloaded 537432 bytes...
 [46%] Downloaded 538803 bytes...
 [46%] Downloaded 540174 bytes...
 [46%] Downloaded 541545 bytes...
 [47%] Downloaded 542916 bytes...
 [47%] Downloaded 544287 bytes...
 [47%] Downloaded 545658 bytes...
 [47%] Downloaded 547029 bytes...
 [47%] Downloaded 548400 bytes...
 [47%] Downloaded 549771 bytes...
 [47%] Downloaded 551142 bytes...
 [47%] Downloaded 552513 bytes...
 [48%] Downloaded 553884 bytes...
 [48%] Downloaded 555255 bytes...
 [48%] Downloaded 556626 bytes...
 [48%] Downloaded 557997 bytes...
 [48%] Downloaded 559368 bytes...
 [48%] Downloaded 560739 bytes...
 [48%] Downloaded 562110 bytes...
 [48%] Downloaded 563481 bytes...
 [49%] Downloaded 564852 bytes...
 [49%] Downloaded 566223 bytes...
 [49%] Downloaded 567594 bytes...
 [49%] Downloaded 568965 bytes...
 [49%] Downloaded 570336 bytes...
 [49%] Downloaded 571707 bytes...
 [49%] Downloaded 573078 bytes...
 [49%] Downloaded 574449 bytes...
 [49%] Downloaded 575820 bytes...
 [50%] Downloaded 577191 bytes...
 [50%] Downloaded 578562 bytes...
 [50%] Downloaded 579933 bytes...
 [50%] Downloaded 581304 bytes...
 [50%] Downloaded 582675 bytes...
 [50%] Downloaded 584046 bytes...
 [50%] Downloaded 585417 bytes...
 [50%] Downloaded 586788 bytes...
 [51%] Downloaded 588159 bytes...
 [51%] Downloaded 589530 bytes...
 [51%] Downloaded 590901 bytes...
 [51%] Downloaded 592272 bytes...
 [51%] Downloaded 593643 bytes...
 [51%] Downloaded 595014 bytes...
 [51%] Downloaded 596385 bytes...
 [51%] Downloaded 597756 bytes...
 [51%] Downloaded 599127 bytes...
 [52%] Downloaded 600498 bytes...
 [52%] Downloaded 601869 bytes...
 [52%] Downloaded 603240 bytes...
 [52%] Downloaded 604611 bytes...
 [52%] Downloaded 605982 bytes...
 [52%] Downloaded 607353 bytes...
 [52%] Downloaded 608724 bytes...
 [52%] Downloaded 610095 bytes...
 [53%] Downloaded 611466 bytes...
 [53%] Downloaded 612837 bytes...
 [53%] Downloaded 614208 bytes...
 [53%] Downloaded 615579 bytes...
 [53%] Downloaded 616950 bytes...
 [53%] Downloaded 618321 bytes...
 [53%] Downloaded 619692 bytes...
 [53%] Downloaded 621063 bytes...
 [53%] Downloaded 622434 bytes...
 [54%] Downloaded 623805 bytes...
 [54%] Downloaded 625176 bytes...
 [54%] Downloaded 626547 bytes...
 [54%] Downloaded 627918 bytes...
 [54%] Downloaded 629289 bytes...
 [54%] Downloaded 630660 bytes...
 [54%] Downloaded 632031 bytes...
 [54%] Downloaded 633402 bytes...
 [55%] Downloaded 634773 bytes...
 [55%] Downloaded 636144 bytes...
 [55%] Downloaded 637515 bytes...
 [55%] Downloaded 638886 bytes...
 [55%] Downloaded 640257 bytes...
 [55%] Downloaded 641628 bytes...
 [55%] Downloaded 642999 bytes...
 [55%] Downloaded 644370 bytes...
 [56%] Downloaded 645741 bytes...
 [56%] Downloaded 647112 bytes...
 [56%] Downloaded 648483 bytes...
 [56%] Downloaded 649854 bytes...
 [56%] Downloaded 651225 bytes...
 [56%] Downloaded 652596 bytes...
 [56%] Downloaded 653967 bytes...
 [56%] Downloaded 655338 bytes...
 [56%] Downloaded 656709 bytes...
 [57%] Downloaded 658080 bytes...
 [57%] Downloaded 659451 bytes...
 [57%] Downloaded 660822 bytes...
 [57%] Downloaded 662193 bytes...
 [57%] Downloaded 663564 bytes...
 [57%] Downloaded 664935 bytes...
 [57%] Downloaded 666306 bytes...
 [57%] Downloaded 667677 bytes...
 [58%] Downloaded 669048 bytes...
 [58%] Downloaded 670419 bytes...
 [58%] Downloaded 671790 bytes...
 [58%] Downloaded 673161 bytes...
 [58%] Downloaded 674532 bytes...
 [58%] Downloaded 675903 bytes...
 [58%] Downloaded 677274 bytes...
 [58%] Downloaded 678645 bytes...
 [58%] Downloaded 680016 bytes...
 [59%] Downloaded 681387 bytes...
 [59%] Downloaded 682758 bytes...
 [59%] Downloaded 684129 bytes...
 [59%] Downloaded 685500 bytes...
 [59%] Downloaded 686871 bytes...
 [59%] Downloaded 688242 bytes...
 [59%] Downloaded 689613 bytes...
 [59%] Downloaded 690984 bytes...
 [60%] Downloaded 692355 bytes...
 [60%] Downloaded 693726 bytes...
 [60%] Downloaded 695097 bytes...
 [60%] Downloaded 696468 bytes...
 [60%] Downloaded 697839 bytes...
 [60%] Downloaded 699210 bytes...
 [60%] Downloaded 700581 bytes...
 [60%] Downloaded 701952 bytes...
 [61%] Downloaded 703323 bytes...
 [61%] Downloaded 704694 bytes...
 [61%] Downloaded 706065 bytes...
 [61%] Downloaded 707436 bytes...
 [61%] Downloaded 708807 bytes...
 [61%] Downloaded 710178 bytes...
 [61%] Downloaded 711549 bytes...
 [61%] Downloaded 712920 bytes...
 [61%] Downloaded 714291 bytes...
 [62%] Downloaded 715662 bytes...
 [62%] Downloaded 717033 bytes...
 [62%] Downloaded 718404 bytes...
 [62%] Downloaded 719775 bytes...
 [62%] Downloaded 721146 bytes...
 [62%] Downloaded 722517 bytes...
 [62%] Downloaded 723888 bytes...
 [62%] Downloaded 725259 bytes...
 [63%] Downloaded 726630 bytes...
 [63%] Downloaded 728001 bytes...
 [63%] Downloaded 729372 bytes...
 [63%] Downloaded 730743 bytes...
 [63%] Downloaded 732114 bytes...
 [63%] Downloaded 733485 bytes...
 [63%] Downloaded 734856 bytes...
 [63%] Downloaded 736227 bytes...
 [63%] Downloaded 737598 bytes...
 [64%] Downloaded 738969 bytes...
 [64%] Downloaded 740340 bytes...
 [64%] Downloaded 741711 bytes...
 [64%] Downloaded 743082 bytes...
 [64%] Downloaded 744453 bytes...
 [64%] Downloaded 745824 bytes...
 [64%] Downloaded 747195 bytes...
 [64%] Downloaded 748566 bytes...
 [65%] Downloaded 749937 bytes...
 [65%] Downloaded 751308 bytes...
 [65%] Downloaded 752679 bytes...
 [65%] Downloaded 754050 bytes...
 [65%] Downloaded 755421 bytes...
 [65%] Downloaded 756792 bytes...
 [65%] Downloaded 758163 bytes...
 [65%] Downloaded 759534 bytes...
 [66%] Downloaded 760905 bytes...
 [66%] Downloaded 762276 bytes...
 [66%] Downloaded 763647 bytes...
 [66%] Downloaded 765018 bytes...
 [66%] Downloaded 766389 bytes...
 [66%] Downloaded 767760 bytes...
 [66%] Downloaded 769131 bytes...
 [66%] Downloaded 770502 bytes...
 [66%] Downloaded 771873 bytes...
 [67%] Downloaded 773244 bytes...
 [67%] Downloaded 774615 bytes...
 [67%] Downloaded 775986 bytes...
 [67%] Downloaded 777357 bytes...
 [67%] Downloaded 778728 bytes...
 [67%] Downloaded 780099 bytes...
 [67%] Downloaded 781470 bytes...
 [67%] Downloaded 782841 bytes...
 [68%] Downloaded 784212 bytes...
 [68%] Downloaded 785583 bytes...
 [68%] Downloaded 786954 bytes...
 [68%] Downloaded 788325 bytes...
 [68%] Downloaded 789696 bytes...
 [68%] Downloaded 791067 bytes...
 [68%] Downloaded 792438 bytes...
 [68%] Downloaded 793809 bytes...
 [68%] Downloaded 795180 bytes...
 [69%] Downloaded 796551 bytes...
 [69%] Downloaded 797922 bytes...
 [69%] Downloaded 799293 bytes...
 [69%] Downloaded 800664 bytes...
 [69%] Downloaded 802035 bytes...
 [69%] Downloaded 803406 bytes...
 [69%] Downloaded 804777 bytes...
 [69%] Downloaded 806148 bytes...
 [70%] Downloaded 807519 bytes...
 [70%] Downloaded 808890 bytes...
 [70%] Downloaded 810261 bytes...
 [70%] Downloaded 811632 bytes...
 [70%] Downloaded 813003 bytes...
 [70%] Downloaded 814374 bytes...
 [70%] Downloaded 815745 bytes...
 [70%] Downloaded 817116 bytes...
 [71%] Downloaded 818487 bytes...
 [71%] Downloaded 819858 bytes...
 [71%] Downloaded 821229 bytes...
 [71%] Downloaded 822600 bytes...
 [71%] Downloaded 823971 bytes...
 [71%] Downloaded 825342 bytes...
 [71%] Downloaded 826713 bytes...
 [71%] Downloaded 828084 bytes...
 [71%] Downloaded 829455 bytes...
 [72%] Downloaded 830826 bytes...
 [72%] Downloaded 832197 bytes...
 [72%] Downloaded 833568 bytes...
 [72%] Downloaded 834939 bytes...
 [72%] Downloaded 836310 bytes...
 [72%] Downloaded 837681 bytes...
 [72%] Downloaded 839052 bytes...
 [72%] Downloaded 840423 bytes...
 [73%] Downloaded 841794 bytes...
 [73%] Downloaded 843165 bytes...
 [73%] Downloaded 844536 bytes...
 [73%] Downloaded 845907 bytes...
 [73%] Downloaded 847278 bytes...
 [73%] Downloaded 848649 bytes...
 [73%] Downloaded 850020 bytes...
 [73%] Downloaded 851391 bytes...
 [73%] Downloaded 852762 bytes...
 [74%] Downloaded 854133 bytes...
 [74%] Downloaded 855504 bytes...
 [74%] Downloaded 856875 bytes...
 [74%] Downloaded 858246 bytes...
 [74%] Downloaded 859617 bytes...
 [74%] Downloaded 860988 bytes...
 [74%] Downloaded 862359 bytes...
 [74%] Downloaded 863730 bytes...
 [75%] Downloaded 865101 bytes...
 [75%] Downloaded 866472 bytes...
 [75%] Downloaded 867843 bytes...
 [75%] Downloaded 869214 bytes...
 [75%] Downloaded 870585 bytes...
 [75%] Downloaded 871956 bytes...
 [75%] Downloaded 873327 bytes...
 [75%] Downloaded 874698 bytes...
 [76%] Downloaded 876069 bytes...
 [76%] Downloaded 877440 bytes...
 [76%] Downloaded 878811 bytes...
 [76%] Downloaded 880182 bytes...
 [76%] Downloaded 881553 bytes...
 [76%] Downloaded 882924 bytes...
 [76%] Downloaded 884295 bytes...
 [76%] Downloaded 885666 bytes...
 [76%] Downloaded 887037 bytes...
 [77%] Downloaded 888408 bytes...
 [77%] Downloaded 889779 bytes...
 [77%] Downloaded 891150 bytes...
 [77%] Downloaded 892521 bytes...
 [77%] Downloaded 893892 bytes...
 [77%] Downloaded 895263 bytes...
 [77%] Downloaded 896634 bytes...
 [77%] Downloaded 898005 bytes...
 [78%] Downloaded 899376 bytes...
 [78%] Downloaded 900747 bytes...
 [78%] Downloaded 902118 bytes...
 [78%] Downloaded 903489 bytes...
 [78%] Downloaded 904860 bytes...
 [78%] Downloaded 906231 bytes...
 [78%] Downloaded 907602 bytes...
 [78%] Downloaded 908973 bytes...
 [78%] Downloaded 910344 bytes...
 [79%] Downloaded 911715 bytes...
 [79%] Downloaded 913086 bytes...
 [79%] Downloaded 914457 bytes...
 [79%] Downloaded 915828 bytes...
 [79%] Downloaded 917199 bytes...
 [79%] Downloaded 918570 bytes...
 [79%] Downloaded 919941 bytes...
 [79%] Downloaded 921312 bytes...
 [80%] Downloaded 922683 bytes...
 [80%] Downloaded 924054 bytes...
 [80%] Downloaded 925425 bytes...
 [80%] Downloaded 926796 bytes...
 [80%] Downloaded 928167 bytes...
 [80%] Downloaded 929538 bytes...
 [80%] Downloaded 930909 bytes...
 [80%] Downloaded 932280 bytes...
 [80%] Downloaded 933651 bytes...
 [81%] Downloaded 935022 bytes...
 [81%] Downloaded 936393 bytes...
 [81%] Downloaded 937764 bytes...
 [81%] Downloaded 939135 bytes...
 [81%] Downloaded 940506 bytes...
 [81%] Downloaded 941877 bytes...
 [81%] Downloaded 943248 bytes...
 [81%] Downloaded 944619 bytes...
 [82%] Downloaded 945990 bytes...
 [82%] Downloaded 947361 bytes...
 [82%] Downloaded 948732 bytes...
 [82%] Downloaded 950103 bytes...
 [82%] Downloaded 951474 bytes...
 [82%] Downloaded 952845 bytes...
 [82%] Downloaded 954216 bytes...
 [82%] Downloaded 955587 bytes...
 [83%] Downloaded 956958 bytes...
 [83%] Downloaded 958329 bytes...
 [83%] Downloaded 959700 bytes...
 [83%] Downloaded 961071 bytes...
 [83%] Downloaded 962442 bytes...
 [83%] Downloaded 963813 bytes...
 [83%] Downloaded 965184 bytes...
 [83%] Downloaded 966555 bytes...
 [83%] Downloaded 967926 bytes...
 [84%] Downloaded 969297 bytes...
 [84%] Downloaded 970668 bytes...
 [84%] Downloaded 972039 bytes...
 [84%] Downloaded 973410 bytes...
 [84%] Downloaded 974781 bytes...
 [84%] Downloaded 976152 bytes...
 [84%] Downloaded 977523 bytes...
 [84%] Downloaded 978894 bytes...
 [85%] Downloaded 980265 bytes...
 [85%] Downloaded 981636 bytes...
 [85%] Downloaded 983007 bytes...
 [85%] Downloaded 984378 bytes...
 [85%] Downloaded 985749 bytes...
 [85%] Downloaded 987120 bytes...
 [85%] Downloaded 988491 bytes...
 [85%] Downloaded 989862 bytes...
 [85%] Downloaded 991233 bytes...
 [86%] Downloaded 992604 bytes...
 [86%] Downloaded 993975 bytes...
 [86%] Downloaded 995346 bytes...
 [86%] Downloaded 996717 bytes...
 [86%] Downloaded 998088 bytes...
 [86%] Downloaded 999459 bytes...
 [86%] Downloaded 1000830 bytes...
 [86%] Downloaded 1002201 bytes...
 [87%] Downloaded 1003572 bytes...
 [87%] Downloaded 1004943 bytes...
 [87%] Downloaded 1006314 bytes...
 [87%] Downloaded 1007685 bytes...
 [87%] Downloaded 1009056 bytes...
 [87%] Downloaded 1010427 bytes...
 [87%] Downloaded 1011798 bytes...
 [87%] Downloaded 1013169 bytes...
 [88%] Downloaded 1014540 bytes...
 [88%] Downloaded 1015911 bytes...
 [88%] Downloaded 1017282 bytes...
 [88%] Downloaded 1018653 bytes...
 [88%] Downloaded 1020024 bytes...
 [88%] Downloaded 1021395 bytes...
 [88%] Downloaded 1022766 bytes...
 [88%] Downloaded 1024137 bytes...
 [88%] Downloaded 1025508 bytes...
 [89%] Downloaded 1026879 bytes...
 [89%] Downloaded 1028250 bytes...
 [89%] Downloaded 1029621 bytes...
 [89%] Downloaded 1030992 bytes...
 [89%] Downloaded 1032363 bytes...
 [89%] Downloaded 1033734 bytes...
 [89%] Downloaded 1035105 bytes...
 [89%] Downloaded 1036476 bytes...
 [90%] Downloaded 1037847 bytes...
 [90%] Downloaded 1039218 bytes...
 [90%] Downloaded 1040589 bytes...
 [90%] Downloaded 1041960 bytes...
 [90%] Downloaded 1043331 bytes...
 [90%] Downloaded 1044702 bytes...
 [90%] Downloaded 1046073 bytes...
 [90%] Downloaded 1047444 bytes...
 [90%] Downloaded 1048815 bytes...
 [91%] Downloaded 1050186 bytes...
 [91%] Downloaded 1051557 bytes...
 [91%] Downloaded 1052928 bytes...
 [91%] Downloaded 1054299 bytes...
 [91%] Downloaded 1055670 bytes...
 [91%] Downloaded 1057041 bytes...
 [91%] Downloaded 1058412 bytes...
 [91%] Downloaded 1059783 bytes...
 [92%] Downloaded 1061154 bytes...
 [92%] Downloaded 1062525 bytes...
 [92%] Downloaded 1063896 bytes...
 [92%] Downloaded 1065267 bytes...
 [92%] Downloaded 1066638 bytes...
 [92%] Downloaded 1068009 bytes...
 [92%] Downloaded 1069380 bytes...
 [92%] Downloaded 1070751 bytes...
 [93%] Downloaded 1072122 bytes...
 [93%] Downloaded 1073493 bytes...
 [93%] Downloaded 1074864 bytes...
 [93%] Downloaded 1076235 bytes...
 [93%] Downloaded 1077606 bytes...
 [93%] Downloaded 1078977 bytes...
 [93%] Downloaded 1080348 bytes...
 [93%] Downloaded 1081719 bytes...
 [93%] Downloaded 1083090 bytes...
 [94%] Downloaded 1084461 bytes...
 [94%] Downloaded 1085832 bytes...
 [94%] Downloaded 1087203 bytes...
 [94%] Downloaded 1088574 bytes...
 [94%] Downloaded 1089945 bytes...
 [94%] Downloaded 1091316 bytes...
 [94%] Downloaded 1092687 bytes...
 [94%] Downloaded 1094058 bytes...
 [95%] Downloaded 1095429 bytes...
 [95%] Downloaded 1096800 bytes...
 [95%] Downloaded 1098171 bytes...
 [95%] Downloaded 1099542 bytes...
 [95%] Downloaded 1100913 bytes...
 [95%] Downloaded 1102284 bytes...
 [95%] Downloaded 1103655 bytes...
 [95%] Downloaded 1105026 bytes...
 [95%] Downloaded 1106397 bytes...
 [96%] Downloaded 1107768 bytes...
 [96%] Downloaded 1109139 bytes...
 [96%] Downloaded 1110510 bytes...
 [96%] Downloaded 1111881 bytes...
 [96%] Downloaded 1113252 bytes...
 [96%] Downloaded 1114623 bytes...
 [96%] Downloaded 1115994 bytes...
 [96%] Downloaded 1117365 bytes...
 [97%] Downloaded 1118736 bytes...
 [97%] Downloaded 1120107 bytes...
 [97%] Downloaded 1121478 bytes...
 [97%] Downloaded 1122849 bytes...
 [97%] Downloaded 1124220 bytes...
 [97%] Downloaded 1125591 bytes...
 [97%] Downloaded 1126962 bytes...
 [97%] Downloaded 1128333 bytes...
 [98%] Downloaded 1129704 bytes...
 [98%] Downloaded 1131075 bytes...
 [98%] Downloaded 1132446 bytes...
 [98%] Downloaded 1133817 bytes...
 [98%] Downloaded 1135188 bytes...
 [98%] Downloaded 1136559 bytes...
 [98%] Downloaded 1137930 bytes...
 [98%] Downloaded 1139301 bytes...
 [98%] Downloaded 1140672 bytes...
 [99%] Downloaded 1142043 bytes...
 [99%] Downloaded 1143414 bytes...
 [99%] Downloaded 1144785 bytes...
 [99%] Downloaded 1146156 bytes...
 [99%] Downloaded 1147527 bytes...
 [99%] Downloaded 1148898 bytes...
 [99%] Downloaded 1150269 bytes...
 [99%] Downloaded 1151640 bytes...
 [100%] Downloaded 1152708 bytes...
viz_def <- list(
  "width: 5"
)

map <- cartovl() %>%
  set_view(-1.4157267858730052, 52.232395363869415, 4) %>%
  add_layer(sample_data, viz_def)

if (interactive()) map

vancouver-blocks


data_url <- paste0(
  "https://raw.githubusercontent.com/uber-common/deck.gl-data/",
  "master/examples/geojson/vancouver-blocks.json"
)

blocks <- st_read(data_url) %>%
  geojson_json()
Reading layer `vancouver-blocks' from data source `https://raw.githubusercontent.com/uber-common/deck.gl-data/master/examples/geojson/vancouver-blocks.json' using driver `GeoJSON'
Simple feature collection with 4627 features and 2 fields
geometry type:  POLYGON
dimension:      XY
bbox:           xmin: -123.2639 ymin: 49.19952 xmax: -123.0235 ymax: 49.29561
CRS:            4326
'geojsonlint' not installed, skipping GeoJSON linting
viz_def <- list(
  "color: ramp($growth, [red, green, yellow])"
)

map <- cartovl() %>%
  set_view(latitude = 49.254, longitude = -123.13, zoom = 11) %>%
  add_layer(blocks, viz_def)

map <- cartovl() %>%
  set_view(latitude = 49.254, longitude = -123.13, zoom = 11) %>%
  add_external_geojson_layer(data_url, viz_def)


if (interactive()) map
LS0tCnRpdGxlOiAiUiBNYXBzIgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogeWVzCiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAotLS0KCldlIGluc3RhbGwgdGhlIGVudmlyb25tZW50IGFuZCAgICAgICAgICAgICAgICAgICAgCmBgYHtyfQpyZW52OjpyZXN0b3JlKHByb21wdCA9IEZBTFNFKQppZighcmVxdWlyZSh0aWR5dmVyc2UpKXsKICAjIHN1ZG8gYXB0LWdldCBpbnN0YWxsIGxpYmdkYWwtZGV2IGxpYnY4LWRldiBsaWJwcm90b2J1Zi1kZXYgcHJvdG9idWYtY29tcGlsZXIgbGlianEtZGV2CiAgaW5zdGFsbC5wYWNrYWdlcyhjKCJkZXZ0b29scyIsInRpZHl2ZXJzZSIsInNmIiwiZ2VvanNvbmlvIiwgInNwRGF0YSIsICJkYXRhLnRhYmxlIikpCiAgZGV2dG9vbHM6Omluc3RhbGxfZ2l0aHViKCJjcmF6eWNhcGl2YXJhL2NhcnRvdmwiKQogIHJlbnY6OnNuYXBzaG90KHByb21wdCA9IEZBTFNFKQp9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHNmKQpsaWJyYXJ5KGdlb2pzb25pbykKbGlicmFyeShjYXJ0b3ZsKQpgYGAKCgojICBDYXJ0b3ZsIE1hcCBmb3IgUiBleGFtcGxlCgpgYGB7cn0KCm5jX2dlb2pzb24gPC0gc3lzdGVtLmZpbGUoInNoYXBlL25jLnNocCIsIHBhY2thZ2UgPSAic2YiKSAlPiUKICBzdF9yZWFkKCkgJT4lCiAgZ2VvanNvbl9qc29uKCkKCnZpel9kZWYgPC0gbGlzdCgKICAiY29sb3I6IHJhbXAoJEFSRUEsIFttaWRuaWdodGJsdWUsIGdvbGRdKSIKKQoKbWFwIDwtIGNhcnRvdmwoKSAlPiUKICBzZXRfdmlldygtNzkuODkwNDIsIDM1LjIzNTgyLCA2KSAlPiUKICBhZGRfbGF5ZXIobmNfZ2VvanNvbiwgdml6X2RlZikKCmlmIChpbnRlcmFjdGl2ZSgpKSBtYXAKYGBgCgoKIyBnZXR0aW5nIHN0YXJ0ZWQKCmBgYHtyfQoKc2FtcGxlX2RhdGEgPC0gZ2VvanNvbl9qc29uKHF1YWtlcykKCnZpel9kZWYgPC0gbGlzdCgKICAiY29sb3I6IGdyZWVuIiwKICAid2lkdGg6IDUiLAogICJmaWx0ZXI6ICRtYWcgPiA1LjIiLAogICJAcG9wdXA6ICRtYWciCikKCm1hcCA8LSBjYXJ0b3ZsKCkgJT4lCiAgc2V0X3ZpZXcoMTc2LjksIC0yNC42NTUsIDIpICU+JQogIGFkZF9sYXllcihzYW1wbGVfZGF0YSwgdml6X2RlZiwgcG9wdXAgPSBUUlVFKSAlPiUKICBhZGRfYm94KCI8aDE+cXVha2VzPC9oMT4iKQoKaWYgKGludGVyYWN0aXZlKCkpIG1hcApgYGAKCiMgY2FydG8tZGF0YXNldAoKYGBge3J9CnZpel9kZWYgPC0gbGlzdCgKICAid2lkdGg6IDciLAogICJjb2xvcjogcmFtcCgkd2VhdGhlcixbZGFya29yYW5nZSxkYXJrdmlvbGV0LGRhcmt0dXJxdW9pc2VdKSIsCiAgInN0cm9rZVdpZHRoOiAwLjIiLAogICJzdHJva2VDb2xvcjogYmxhY2siCikKCm1hcCA8LSBjYXJ0b3ZsKCkgJT4lCiAgc2V0X3ZpZXcoLTk2LCA0MSwgNCkgJT4lCiAgYWRkX2JveCgiPGI+UmFpbCBBY2NpZGVudHMgYnkgV2VhdGhlcjwvYj4iKSAlPiUKICBzZXRfZGVmYXVsdF9hdXRoKCkgJT4lCiAgYWRkX2RhdGFzZXRfbGF5ZXIoInJhaWxyb2FkX2FjY2lkZW50cyIsIHZpel9kZWYsIGxlZ2VuZCA9IGxpc3QocG9zaXRpb24gPSAiYm90dG9tLWxlZnQiKSkKCmlmIChpbnRlcmFjdGl2ZSgpKSBtYXAKYGBgCiMgZXZlcnktcGVyc29uLWluLW1hbmhhdHRlbgoKYGBge3J9CgoKZGF0YV91cmwgPC0gcGFzdGUwKAogICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vIiwKICAidWJlci1jb21tb24vZGVjay5nbC1kYXRhLyIsCiAgIm1hc3Rlci9leGFtcGxlcy9zY2F0dGVycGxvdC9tYW5oYXR0YW4uanNvbiIKKQoKcGVyc29ucyA8LSBkYXRhX3VybCAlPiUKICBqc29ubGl0ZTo6cmVhZF9qc29uKHNpbXBsaWZ5VmVjdG9yID0gVFJVRSkgJT4lCiAgYXNfdGliYmxlKCkgJT4lCiAgc2V0X25hbWVzKGMoImxuZyIsICJsYXQiLCAic2V4IikpICU+JQogIGRwbHlyOjptdXRhdGUoc2V4ID0gaWZlbHNlKHNleCA9PSAxLCAibWFsZSIsICJmZW1hbGUiKSkKCiMgcGVyc29ucyRzZXggPC0gaWZlbHNlKHBlcnNvbnMkc2V4ID09IDEsICJtIiwgImYiKQoKIyBwZXJzb25zX2dlb2pzb24gPC0gZ2VvanNvbmlvOjpnZW9qc29uX2pzb24ocGVyc29ucykKCmNhcnRvdmwoKSAlPiUKICBzZXRfdmlldygtNzMuOTg1MTMwLCA0MC43NTg4OTYsIDExKSAlPiUKICBhZGRfY29udHJvbCgpICU+JQogIGFkZF9sYXllcigKICAgICMgZGF0YSA9IHBlcnNvbnNfZ2VvanNvbiwKICAgIGRhdGEgPSBwZXJzb25zLAogICAgdml6X2RlZiA9IGxpc3QoImNvbG9yOiByYW1wKGJ1Y2tldHMoJHNleCwgWydtYWxlJywgJ2ZlbWFsZSddKSwgW3JlZCwgYmx1ZV0pIiksCiAgICBsZWdlbmQgPSBUUlVFCiAgKQpgYGAKCiMgZXh0ZXJuYWwtZGF0YS1zb3VyY2UKYGBge3J9Cgpzb3VyY2UgPC0gImh0dHBzOi8vbGlicy5jYXJ0b2Nkbi5jb20vY2FydG8tdmwvYXNzZXRzL3N0YXRpb25zLmdlb2pzb24iCgptYXAgPC0gY2FydG92bCgpICU+JQogIHNldF92aWV3KC03Ny4wNCwgMzguODksIDkpICU+JQogIGFkZF9leHRlcm5hbF9nZW9qc29uX2xheWVyKHNvdXJjZSwgbGlzdCgiQHBvcHVwOiAkbmFtZSIpLCBwb3B1cCA9IFRSVUUpCgppZiAoaW50ZXJhY3RpdmUoKSkgbWFwCmBgYAoKIyBsYXllcnNfcG9seWdvbgpgYGB7cn0KbmNfZ2VvanNvbiA8LSBzeXN0ZW0uZmlsZSgic2hhcGUvbmMuc2hwIiwgcGFja2FnZSA9ICJzZiIpICU+JQogIHN0X3JlYWQoKSAlPiUKICBnZW9qc29uX2pzb24oKQoKdml6X2RlZiA8LSBsaXN0KAogICJjb2xvcjogcmFtcCgkQVJFQSwgW21pZG5pZ2h0Ymx1ZSwgZ29sZF0pIiwKICAiZmlsdGVyOiAkQVJFQSA+IDAuMTYiLAogICJAbmFtZTogJE5BTUUiCikKCnZpel9kZWYyIDwtIGxpc3QoCiAgImNvbG9yOiByYW1wKGdsb2JhbFF1YW50aWxlcygkQVJFQSwgMyksIFttaWRuaWdodGJsdWUsIGdvbGRdKSIsCiAgIkBuYW1lOiAkTkFNRSIKKQoKbWFwIDwtIGNhcnRvdmwoKSAlPiUKICBhZGRfc291cmNlKG5jX2dlb2pzb24sICJuYyIpICU+JQogIGFkZF9jb250cm9sKCJOYXZpZ2F0aW9uQ29udHJvbCIsIHNob3dDb21wYXNzID0gRkFMU0UpICU+JQogIHNldF92aWV3KC03OS44OTA0MiwgMzUuMjM1ODIsIDYpICU+JQogIGFkZF9sYXllcigibmMiLCB2aXpfZGVmMiwgcG9wdXAgPSBUUlVFLCBsZWdlbmQgPSBUUlVFKQogICMgYWRkX2xheWVyKG5jX2dlb2pzb24sIHZpel9kZWYsIHBvcHVwID0gVFJVRSkKCmlmIChpbnRlcmFjdGl2ZSgpKSBtYXAKYGBgCgojIG1hcGJveC1sYXllcl9wb2x5Z28KYGBge3J9Cgpwb2x5Z29uX3N0eWxlIDwtIGxpc3QoCiAgdHlwZSA9ICJmaWxsIiwKICBwYWludCA9IGxpc3QoCiAgICAiZmlsbC1jb2xvciIgPSAid2hpdGUiLAogICAgImZpbGwtb3V0bGluZS1jb2xvciIgPSAicmVkIgogICksCiAgZmlsdGVyID0gbGlzdCgiPiIsICJBUkVBIiwgMC4yKQopCgpjYXJ0b3ZsKCkgJT4lCiAgc2V0X3ZpZXcoLTc5Ljg5MDQyLCAzNS4yMzU4MiwgNikgJT4lCiAgYWRkX3NvdXJjZShuY19nZW9qc29uLCAibmMiKSAlPiUKICBhZGRfbWFwYm94X2xheWVyKCJuYyIsIHBvbHlnb25fc3R5bGUpCmBgYAoKCiMgbWFwYm94LWxheWVyX3RleHQKYGBge3J9CgoKZGF0YV9nZW9qc29uIDwtIGdlb2pzb25pbzo6Z2VvanNvbl9qc29uKHF1YWtlcykKCnRleHRfc3R5bGUgPC0gbGlzdCgKICB0eXBlID0gInN5bWJvbCIsCiAgbGF5b3V0ID0gbGlzdCgKICAgICJ0ZXh0LWZpZWxkIiA9ICJ7bWFnfSIKICApLAogIHBhaW50ID0gbGlzdCgKICAgICJ0ZXh0LWNvbG9yIiA9ICJ3aGl0ZSIKICApCikKCm1hcCA8LSBjYXJ0b3ZsKCkgJT4lCiAgc2V0X3ZpZXcoMTc2LjksIC0yNC42NTUsIDIpICU+JQogICMgYWRkX3NvdXJjZShkYXRhX2dlb2pzb24sICJxdWFrZXMiKSAlPiUKICBhZGRfc291cmNlKHF1YWtlcywgInF1YWtlcyIsIGxhdGl0dWRlID0gImxhdCIsIGxvbmdpdHVkZSA9ICJsb25nIikgJT4lCiAgIyBhZGRfbWFwYm94X2xheWVyKCJxdWFrZXMiLCB0ZXh0X3N0eWxlKSAlPiUKICBhZGRfbWFwYm94X2xheWVyKCJxdWFrZXMiLCBtYXBib3hfdGV4dF9zdHlsZSgibWFnIikpICU+JQogIGFkZF9jb250cm9sKCkKCmlmIChpbnRlcmFjdGl2ZSgpKSBtYXAKYGBgCgojIG11bHRpcGxlLWxheWVycwpgYGB7cn0KCnRleHRfc3R5bGUgPC0gbGlzdCgKICB0eXBlID0gInN5bWJvbCIsCiAgbGF5b3V0ID0gbGlzdCgKICAgICJ0ZXh0LWZpZWxkIiA9ICJ7TkFNRX0iCiAgKSwKICBwYWludCA9IGxpc3QoCiAgICAidGV4dC1jb2xvciIgPSAid2hpdGUiCiAgKQopCgpkYXRhX3VybCA8LSAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3ViZXItY29tbW9uL2RlY2suZ2wtZGF0YS9tYXN0ZXIvZXhhbXBsZXMvaGlnaHdheS9yb2Fkcy5qc29uIgoKdXNfc3RhdGVzIDwtIGdlb2pzb25pbzo6Z2VvanNvbl9qc29uKHNwRGF0YTo6dXNfc3RhdGVzKQoKbWFwIDwtIGNhcnRvdmwoKSAlPiUKICBhZGRfY29udHJvbCgpICU+JQogIGFkZF9zb3VyY2UodXNfc3RhdGVzLCAidXNfc3RhdGVzIikgJT4lCiAgc2V0X3ZpZXcoLTEwMCwgMzgsIDMpICU+JQogIGFkZF9sYXllcigKICAgICJ1c19zdGF0ZXMiLAogICAgbGlzdCgKICAgICAgImNvbG9yOiBvcGFjaXR5KHJhbXAoJE5BTUUsIHZpdmlkKSwgMC40KSIKICAgICksCiAgICBpZCA9ICJzdGF0ZS1wb2x5Z29ucyIKICApICU+JQogIGFkZF9leHRlcm5hbF9nZW9qc29uX2xheWVyKAogICAgZGF0YV91cmwsCiAgICBsaXN0KAogICAgICAiY29sb3I6IHJhbXAoJHN0YXRlLCB2aXZpZCkiLAogICAgICAid2lkdGg6IDUiLAogICAgICAiQHBvcHVwOiAkc3RhdGUiCiAgICApLAogICAgaWQgPSAicm9hZHMiLAogICAgcG9wdXAgPSBUUlVFCiAgKSAlPiUKICBhZGRfbWFwYm94X2xheWVyKAogICAgInVzX3N0YXRlcyIsIHRleHRfc3R5bGUsIGlkID0gImxhYmVscyIKICApCgppZiAoaW50ZXJhY3RpdmUoKSkgbWFwCmBgYAoKCiMgcm9hZC1zYWZldHktdWsKYGBge3J9CgpkYXRhX3VybCA8LSBwYXN0ZTAoCiAgImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS8iLAogICJ1YmVyLWNvbW1vbi9kZWNrLmdsLWRhdGEvIiwKICAibWFzdGVyL2V4YW1wbGVzLzNkLWhlYXRtYXAvaGVhdG1hcC1kYXRhLmNzdiIKKQpzYW1wbGVfZGF0YSA8LSBkYXRhLnRhYmxlOjpmcmVhZChkYXRhX3VybCkgJT4lCiAgbmEub21pdCgpCgp2aXpfZGVmIDwtIGxpc3QoCiAgIndpZHRoOiA1IgopCgptYXAgPC0gY2FydG92bCgpICU+JQogIHNldF92aWV3KC0xLjQxNTcyNjc4NTg3MzAwNTIsIDUyLjIzMjM5NTM2Mzg2OTQxNSwgNCkgJT4lCiAgYWRkX2xheWVyKHNhbXBsZV9kYXRhLCB2aXpfZGVmKQoKaWYgKGludGVyYWN0aXZlKCkpIG1hcApgYGAKCiMgdmFuY291dmVyLWJsb2NrcwpgYGB7cn0KCmRhdGFfdXJsIDwtIHBhc3RlMCgKICAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3ViZXItY29tbW9uL2RlY2suZ2wtZGF0YS8iLAogICJtYXN0ZXIvZXhhbXBsZXMvZ2VvanNvbi92YW5jb3V2ZXItYmxvY2tzLmpzb24iCikKCmJsb2NrcyA8LSBzdF9yZWFkKGRhdGFfdXJsKSAlPiUKICBnZW9qc29uX2pzb24oKQoKdml6X2RlZiA8LSBsaXN0KAogICJjb2xvcjogcmFtcCgkZ3Jvd3RoLCBbcmVkLCBncmVlbiwgeWVsbG93XSkiCikKCm1hcCA8LSBjYXJ0b3ZsKCkgJT4lCiAgc2V0X3ZpZXcobGF0aXR1ZGUgPSA0OS4yNTQsIGxvbmdpdHVkZSA9IC0xMjMuMTMsIHpvb20gPSAxMSkgJT4lCiAgYWRkX2xheWVyKGJsb2Nrcywgdml6X2RlZikKCm1hcCA8LSBjYXJ0b3ZsKCkgJT4lCiAgc2V0X3ZpZXcobGF0aXR1ZGUgPSA0OS4yNTQsIGxvbmdpdHVkZSA9IC0xMjMuMTMsIHpvb20gPSAxMSkgJT4lCiAgYWRkX2V4dGVybmFsX2dlb2pzb25fbGF5ZXIoZGF0YV91cmwsIHZpel9kZWYpCgoKaWYgKGludGVyYWN0aXZlKCkpIG1hcApgYGAKCg==